iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0

Object.create

Object.create 接受一個物件當作傳入的參數,
這個傳入的物件會被新增到 Object.create 回傳的新物件中當作它能夠在原型鏈中找到的原型物件,
先上一段程式碼:

var person = {
  firstname: 'Default',
  lastname: 'Default',
  greet: function () {
    return "Hi " + this.firstname;
  }
}

var jimmy = Object.create(person);

console.log(jimmy);

在開發者工具 console 中的結果:

會看到變數 jimmy 輸出一個空物件,
但是在空物件的原型中有看到 Person 物件的屬性與方法,
這也就驗證了 Object.create 替我們把 Person 物件變成在空物件的原型鍊裡的原型物件,

我可以替變數 jimmy 的值(空物件)新增其他屬性:

var person = {
  firstname: 'Default',
  lastname: 'Default',
  greet: function () {
    return "Hi " + this.firstname;
  }
}

var jimmy = Object.create(person);
this.firstname = "jimmy";
this.lastname = "huang";

console.log(jimmy);

在開發者工具 console 中來看輸出的結果:

透過 Object.create 方法可以快速的建立物件,
並且提供了一種便利的方式讓你在新建的物件時還可以連結原型物件,
新建立的物件在原型鏈下找到該原型物件來參考需要的屬性與方法來使用.
也就是讓透過 object.create 方法建立的物件繼承原型物件的屬性與方法.


上一篇
建構子與「.prototype」
下一篇
使用 Class 語法糖建立物件
系列文
那些必須了解的 JavaScript 特性與寫程式前的思考17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言